<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>tvs_sdk_api: tvs_common_def.h 文件参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">tvs_sdk_api
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('tvs__common__def_8h.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">结构体</a> &#124;
<a href="#define-members">宏定义</a> &#124;
<a href="#typedef-members">类型定义</a> &#124;
<a href="#enum-members">枚举</a>  </div>
  <div class="headertitle">
<div class="title">tvs_common_def.h 文件参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>TVS SDK结构体和参数、返回值、错误码等定义  
<a href="#details">更多...</a></p>
<div class="textblock"><div class="dynheader">
此图展示该文件直接或间接的被哪些文件引用了:</div>
<div class="dyncontent">
<div class="center"><img src="tvs__common__def_8h__dep__incl.png" border="0" usemap="#tvs__common__def_8hdep" alt=""/></div>
</div>
</div>
<p><a href="tvs__common__def_8h_source.html">浏览源代码.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
结构体</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtvs__default__config.html">tvs_default_config</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDK配置参数  <a href="structtvs__default__config.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtvs__product__qua.html">tvs_product_qua</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">产品QUA  <a href="structtvs__product__qua.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtvs__api__state__param.html">tvs_api_state_param</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">设备端状态变化时的参数  <a href="structtvs__api__state__param.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtvs__api__tts__param.html">tvs_api_tts_param</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">语音合成参数  <a href="structtvs__api__tts__param.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtvs__api__callback.html">tvs_api_callback</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">向SDK注册的回调函数  <a href="structtvs__api__callback.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
宏定义</h2></td></tr>
<tr class="memitem:abd111340885a45f4c2ce9176fa0c3c4e"><td class="memItemLeft" align="right" valign="top"><a id="abd111340885a45f4c2ce9176fa0c3c4e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#abd111340885a45f4c2ce9176fa0c3c4e">TVS_API_ERROR_NONE</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:abd111340885a45f4c2ce9176fa0c3c4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">成功 <br /></td></tr>
<tr class="separator:abd111340885a45f4c2ce9176fa0c3c4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6e3f4bb6f128d1c5759ac5162459ca3"><td class="memItemLeft" align="right" valign="top"><a id="aa6e3f4bb6f128d1c5759ac5162459ca3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#aa6e3f4bb6f128d1c5759ac5162459ca3">TVS_API_ERROR_OTHERS</a>&#160;&#160;&#160;-1</td></tr>
<tr class="memdesc:aa6e3f4bb6f128d1c5759ac5162459ca3"><td class="mdescLeft">&#160;</td><td class="mdescRight">一般错误 <br /></td></tr>
<tr class="separator:aa6e3f4bb6f128d1c5759ac5162459ca3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9c01518cb708fa275f3d5246d6cbb05"><td class="memItemLeft" align="right" valign="top"><a id="ac9c01518cb708fa275f3d5246d6cbb05"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#ac9c01518cb708fa275f3d5246d6cbb05">TVS_API_ERROR_BUSY</a>&#160;&#160;&#160;-2</td></tr>
<tr class="memdesc:ac9c01518cb708fa275f3d5246d6cbb05"><td class="mdescLeft">&#160;</td><td class="mdescRight">当前正处于智能语音对话或者播放控制中，无法启动 <br /></td></tr>
<tr class="separator:ac9c01518cb708fa275f3d5246d6cbb05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d0a256cc0c018bdadad3ea84016665f"><td class="memItemLeft" align="right" valign="top"><a id="a6d0a256cc0c018bdadad3ea84016665f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#a6d0a256cc0c018bdadad3ea84016665f">TVS_API_ERROR_MEDIAPLAYER_INVALID</a>&#160;&#160;&#160;-3</td></tr>
<tr class="memdesc:a6d0a256cc0c018bdadad3ea84016665f"><td class="mdescLeft">&#160;</td><td class="mdescRight">当前播放器正忙，无法启动 <br /></td></tr>
<tr class="separator:a6d0a256cc0c018bdadad3ea84016665f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabd2305934340a03ddc884188f071622"><td class="memItemLeft" align="right" valign="top"><a id="aabd2305934340a03ddc884188f071622"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#aabd2305934340a03ddc884188f071622">TVS_API_ERROR_NOT_ATHORIZED</a>&#160;&#160;&#160;-4</td></tr>
<tr class="memdesc:aabd2305934340a03ddc884188f071622"><td class="mdescLeft">&#160;</td><td class="mdescRight">当前终端未鉴权 <br /></td></tr>
<tr class="separator:aabd2305934340a03ddc884188f071622"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c7fa18fdc6246f8686249c3ee60b4d8"><td class="memItemLeft" align="right" valign="top"><a id="a2c7fa18fdc6246f8686249c3ee60b4d8"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#a2c7fa18fdc6246f8686249c3ee60b4d8">TVS_API_ERROR_NETWORK_INVALID</a>&#160;&#160;&#160;-5</td></tr>
<tr class="memdesc:a2c7fa18fdc6246f8686249c3ee60b4d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">当前终端网络连接异常 <br /></td></tr>
<tr class="separator:a2c7fa18fdc6246f8686249c3ee60b4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85c4f6964e83b218af1e99dca151de62"><td class="memItemLeft" align="right" valign="top"><a id="a85c4f6964e83b218af1e99dca151de62"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#a85c4f6964e83b218af1e99dca151de62">TVS_API_ERROR_CLIENT_ID_INVALID</a>&#160;&#160;&#160;-6</td></tr>
<tr class="memdesc:a85c4f6964e83b218af1e99dca151de62"><td class="mdescLeft">&#160;</td><td class="mdescRight">由于终端无client id，导致授权失败 <br /></td></tr>
<tr class="separator:a85c4f6964e83b218af1e99dca151de62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2d761ea3098083ee9afcda62aae95da"><td class="memItemLeft" align="right" valign="top"><a id="ae2d761ea3098083ee9afcda62aae95da"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#ae2d761ea3098083ee9afcda62aae95da">TVS_API_ERROR_NOT_RUNNING</a>&#160;&#160;&#160;-7</td></tr>
<tr class="memdesc:ae2d761ea3098083ee9afcda62aae95da"><td class="mdescLeft">&#160;</td><td class="mdescRight">由于终端SDK处于STOP状态 <br /></td></tr>
<tr class="separator:ae2d761ea3098083ee9afcda62aae95da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2832d3f802f68fc5ee9e6a0b812c9252"><td class="memItemLeft" align="right" valign="top"><a id="a2832d3f802f68fc5ee9e6a0b812c9252"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#a2832d3f802f68fc5ee9e6a0b812c9252">TVS_API_ERROR_NETWORK_ERROR</a>&#160;&#160;&#160;-8</td></tr>
<tr class="memdesc:a2832d3f802f68fc5ee9e6a0b812c9252"><td class="mdescLeft">&#160;</td><td class="mdescRight">由于网络异常导致后台无响应 <br /></td></tr>
<tr class="separator:a2832d3f802f68fc5ee9e6a0b812c9252"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf52274e8585cb4edb9f0cd637103873"><td class="memItemLeft" align="right" valign="top"><a id="abf52274e8585cb4edb9f0cd637103873"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#abf52274e8585cb4edb9f0cd637103873">TVS_API_ERROR_NO_MORE_MEDIA</a>&#160;&#160;&#160;-10</td></tr>
<tr class="memdesc:abf52274e8585cb4edb9f0cd637103873"><td class="mdescLeft">&#160;</td><td class="mdescRight">执行播控切换后，后台未下发媒体，一般是因为歌单播放完毕导致 <br /></td></tr>
<tr class="separator:abf52274e8585cb4edb9f0cd637103873"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21566807638f13ebd524f2683b35852f"><td class="memItemLeft" align="right" valign="top"><a id="a21566807638f13ebd524f2683b35852f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TVS_API_ERROR_INVALID_PARAMS</b>&#160;&#160;&#160;-11</td></tr>
<tr class="separator:a21566807638f13ebd524f2683b35852f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54a5f06555089d5fb40ed29122a88c61"><td class="memItemLeft" align="right" valign="top"><a id="a54a5f06555089d5fb40ed29122a88c61"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TVS_STATE_COMPLETE</b>&#160;&#160;&#160;<a class="el" href="tvs__common__def_8h.html#a4910c576d2ee166721a6414854273ff9af3b16c1d04aa3c3eb77f2b90d31fccfb">TVS_STATE_IDLE</a></td></tr>
<tr class="separator:a54a5f06555089d5fb40ed29122a88c61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d6f6811d2dae4dbdeedf7c50795c145"><td class="memItemLeft" align="right" valign="top"><a id="a4d6f6811d2dae4dbdeedf7c50795c145"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TVS_TIMBRE_ZHOULONGFEI</b>&#160;&#160;&#160;&quot;ZHOULONGFEI&quot;</td></tr>
<tr class="separator:a4d6f6811d2dae4dbdeedf7c50795c145"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73786af0922f4cb72b3045a946799ab9"><td class="memItemLeft" align="right" valign="top"><a id="a73786af0922f4cb72b3045a946799ab9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TVS_TIMBRE_CHENANQI</b>&#160;&#160;&#160;&quot;CHENANQI&quot;</td></tr>
<tr class="separator:a73786af0922f4cb72b3045a946799ab9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2662d0945b1eaa476ce595ae5f020d8d"><td class="memItemLeft" align="right" valign="top"><a id="a2662d0945b1eaa476ce595ae5f020d8d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TVS_TIMBRE_YEZI</b>&#160;&#160;&#160;&quot;YEZI&quot;</td></tr>
<tr class="separator:a2662d0945b1eaa476ce595ae5f020d8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96caee53281bad47007324d8449cba5f"><td class="memItemLeft" align="right" valign="top"><a id="a96caee53281bad47007324d8449cba5f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TVS_TIMBRE_YEWAN</b>&#160;&#160;&#160;&quot;YEWAN&quot;</td></tr>
<tr class="separator:a96caee53281bad47007324d8449cba5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3da2df3ff7ec26f774436f89f3c9088"><td class="memItemLeft" align="right" valign="top"><a id="ac3da2df3ff7ec26f774436f89f3c9088"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TVS_TIMBRE_DAJI</b>&#160;&#160;&#160;&quot;DAJI&quot;</td></tr>
<tr class="separator:ac3da2df3ff7ec26f774436f89f3c9088"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a304b91d7268a21644adde67e02cfcfe5"><td class="memItemLeft" align="right" valign="top"><a id="a304b91d7268a21644adde67e02cfcfe5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TVS_TIMBRE_LIBAI</b>&#160;&#160;&#160;&quot;LIBAI&quot;</td></tr>
<tr class="separator:a304b91d7268a21644adde67e02cfcfe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62b000b3ead8655754517865739fcd9e"><td class="memItemLeft" align="right" valign="top"><a id="a62b000b3ead8655754517865739fcd9e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TVS_TIMBRE_NAZHA</b>&#160;&#160;&#160;&quot;NAZHA&quot;</td></tr>
<tr class="separator:a62b000b3ead8655754517865739fcd9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaf5b7894dfeb597e46b977b8720dad4"><td class="memItemLeft" align="right" valign="top"><a id="adaf5b7894dfeb597e46b977b8720dad4"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TVS_TIMBRE_MUZHA</b>&#160;&#160;&#160;&quot;MUZHA&quot;</td></tr>
<tr class="separator:adaf5b7894dfeb597e46b977b8720dad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6e26372981c52827a6f1266abb93b57"><td class="memItemLeft" align="right" valign="top"><a id="ac6e26372981c52827a6f1266abb93b57"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TVS_TIMBRE_WY</b>&#160;&#160;&#160;&quot;WY&quot;</td></tr>
<tr class="separator:ac6e26372981c52827a6f1266abb93b57"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
类型定义</h2></td></tr>
<tr class="memitem:adbdb3f6ab77f93418109c0cd40073cd5"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#adbdb3f6ab77f93418109c0cd40073cd5">tvs_callback_on_state_changed</a>) (<a class="el" href="tvs__common__def_8h.html#a4910c576d2ee166721a6414854273ff9">tvs_recognize_state</a> last_state, <a class="el" href="tvs__common__def_8h.html#a4910c576d2ee166721a6414854273ff9">tvs_recognize_state</a> new_state, void *state_param)</td></tr>
<tr class="memdesc:adbdb3f6ab77f93418109c0cd40073cd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">监听SDK状态变化  <a href="#adbdb3f6ab77f93418109c0cd40073cd5">更多...</a><br /></td></tr>
<tr class="separator:adbdb3f6ab77f93418109c0cd40073cd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f76bd76ef4fe3420195796922dbe9cc"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#a7f76bd76ef4fe3420195796922dbe9cc">tvs_callback_on_terminal_sync</a>) (const char *text, const char *token)</td></tr>
<tr class="memdesc:a7f76bd76ef4fe3420195796922dbe9cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">监听多端互动推送信息，一般是来自手机APP端的自定义消息。 实现此接口，可以接受这些自定义消息的推送，并跟进消息内容进行处理。  <a href="#a7f76bd76ef4fe3420195796922dbe9cc">更多...</a><br /></td></tr>
<tr class="separator:a7f76bd76ef4fe3420195796922dbe9cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f2eb737ecd41665f0691be8a7ad6a37"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#a2f2eb737ecd41665f0691be8a7ad6a37">tvs_callback_on_mode_changed</a>) (<a class="el" href="tvs__common__def_8h.html#af3d61c6c0a0109373487de2a670ace99">tvs_mode</a> src, <a class="el" href="tvs__common__def_8h.html#af3d61c6c0a0109373487de2a670ace99">tvs_mode</a> dst)</td></tr>
<tr class="memdesc:a2f2eb737ecd41665f0691be8a7ad6a37"><td class="mdescLeft">&#160;</td><td class="mdescRight">监听模式切换，用户使用语音或者从手机APP端切换模式后，设备端会收到模式切换指令。 实现此接口，可以在模式切换的时候得到通知  <a href="#a2f2eb737ecd41665f0691be8a7ad6a37">更多...</a><br /></td></tr>
<tr class="separator:a2f2eb737ecd41665f0691be8a7ad6a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa26b7dd51f7a270e24726cbe9c6100ee"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#aa26b7dd51f7a270e24726cbe9c6100ee">tvs_callback_on_expect_speech</a>) ()</td></tr>
<tr class="memdesc:aa26b7dd51f7a270e24726cbe9c6100ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">监听多轮会话事件，用户使用语音触发多轮会话的场景，设备端会收到多轮会话指令。 实现此接口，可以在触发多轮对话的时候得到通知，需要触发一轮新的智能语音对话流程。  <a href="#aa26b7dd51f7a270e24726cbe9c6100ee">更多...</a><br /></td></tr>
<tr class="separator:aa26b7dd51f7a270e24726cbe9c6100ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1743b7eb722cd88695d5893b19cae1cb"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#a1743b7eb722cd88695d5893b19cae1cb">tvs_callback_on_recv_tvs_control</a>) (const char *json_payload)</td></tr>
<tr class="memdesc:a1743b7eb722cd88695d5893b19cae1cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">监听后台下发的自定义技能数据  <a href="#a1743b7eb722cd88695d5893b19cae1cb">更多...</a><br /></td></tr>
<tr class="separator:a1743b7eb722cd88695d5893b19cae1cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad99bb624547e16fe676bba6903cad66a"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#ad99bb624547e16fe676bba6903cad66a">tvs_callback_on_asr_result</a>) (const char *asr_text, bool is_end)</td></tr>
<tr class="memdesc:ad99bb624547e16fe676bba6903cad66a"><td class="mdescLeft">&#160;</td><td class="mdescRight">监听后台下发的语音转文本结果  <a href="#ad99bb624547e16fe676bba6903cad66a">更多...</a><br /></td></tr>
<tr class="separator:ad99bb624547e16fe676bba6903cad66a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90dcf7653d61ef8ba1925005dccf71ac"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#a90dcf7653d61ef8ba1925005dccf71ac">tvs_authorize_callback</a>) (bool ok, char *auth_info, int auth_info_len, const char *client_id, int error)</td></tr>
<tr class="memdesc:a90dcf7653d61ef8ba1925005dccf71ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">监听authorize的结果，需要持久化此结果，作为下一次authorize的依据  <a href="#a90dcf7653d61ef8ba1925005dccf71ac">更多...</a><br /></td></tr>
<tr class="separator:a90dcf7653d61ef8ba1925005dccf71ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fd8e8fff55c25044094299990c6bc2f"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#a0fd8e8fff55c25044094299990c6bc2f">tvs_api_callback_on_provider_reader_stop</a>) (int session_id, int error)</td></tr>
<tr class="memdesc:a0fd8e8fff55c25044094299990c6bc2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">当SDK内部的流式语音上传操作停止时，将回调此接口  <a href="#a0fd8e8fff55c25044094299990c6bc2f">更多...</a><br /></td></tr>
<tr class="separator:a0fd8e8fff55c25044094299990c6bc2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
枚举</h2></td></tr>
<tr class="memitem:a4910c576d2ee166721a6414854273ff9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#a4910c576d2ee166721a6414854273ff9">tvs_recognize_state</a> { <br />
&#160;&#160;<a class="el" href="tvs__common__def_8h.html#a4910c576d2ee166721a6414854273ff9af3b16c1d04aa3c3eb77f2b90d31fccfb">TVS_STATE_IDLE</a>, 
<a class="el" href="tvs__common__def_8h.html#a4910c576d2ee166721a6414854273ff9a343a7d50d3b175edfed40587907623b6">TVS_STATE_PREPARING</a>, 
<a class="el" href="tvs__common__def_8h.html#a4910c576d2ee166721a6414854273ff9acf772907befd6d32c52c45cabfb3b498">TVS_STATE_RECOGNIZNG</a>, 
<a class="el" href="tvs__common__def_8h.html#a4910c576d2ee166721a6414854273ff9a99197d5435bc834184d4a77bd4483651">TVS_STATE_BUSY</a>, 
<br />
&#160;&#160;<a class="el" href="tvs__common__def_8h.html#a4910c576d2ee166721a6414854273ff9a6323cb6c5c34b551393924b425fba383">TVS_STATE_SPEECH_PLAYING</a>
<br />
 }</td></tr>
<tr class="memdesc:a4910c576d2ee166721a6414854273ff9"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDK状态  <a href="tvs__common__def_8h.html#a4910c576d2ee166721a6414854273ff9">更多...</a><br /></td></tr>
<tr class="separator:a4910c576d2ee166721a6414854273ff9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b5f77df252a057ac0a63f6f07f44833"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#a7b5f77df252a057ac0a63f6f07f44833">tvs_api_env</a> { <a class="el" href="tvs__common__def_8h.html#a7b5f77df252a057ac0a63f6f07f44833a512585d6d04ffe8a6daa80f6ed70ed9d">TVS_API_ENV_TEST</a>, 
<a class="el" href="tvs__common__def_8h.html#a7b5f77df252a057ac0a63f6f07f44833a2e8aae81e668558ffe21b45be01cd17a">TVS_API_ENV_NORMAL</a>, 
<a class="el" href="tvs__common__def_8h.html#a7b5f77df252a057ac0a63f6f07f44833aad7c9ec87757c7a1d9a9803954db80cd">TVS_API_ENV_EXP</a>, 
<a class="el" href="tvs__common__def_8h.html#a7b5f77df252a057ac0a63f6f07f44833aec0292e6108b685e689939a7ccf51346">TVS_API_ENV_DEV</a>
 }</td></tr>
<tr class="memdesc:a7b5f77df252a057ac0a63f6f07f44833"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDK环境  <a href="tvs__common__def_8h.html#a7b5f77df252a057ac0a63f6f07f44833">更多...</a><br /></td></tr>
<tr class="separator:a7b5f77df252a057ac0a63f6f07f44833"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3d61c6c0a0109373487de2a670ace99"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#af3d61c6c0a0109373487de2a670ace99">tvs_mode</a> { <a class="el" href="tvs__common__def_8h.html#af3d61c6c0a0109373487de2a670ace99a810069da3b1e6fdc78ee6d1b6eefd67b">TVS_MODE_NORMAL</a>, 
<a class="el" href="tvs__common__def_8h.html#af3d61c6c0a0109373487de2a670ace99a132794155b9bdc0dd93fc086131bda62">TVS_MODE_BAOLA</a>, 
<a class="el" href="tvs__common__def_8h.html#af3d61c6c0a0109373487de2a670ace99aaa3536b84bda0a291b254102ba4d1030">TVS_MODE_CHILD</a>, 
<b>TVS_MODE_COUNT</b>
 }</td></tr>
<tr class="memdesc:af3d61c6c0a0109373487de2a670ace99"><td class="mdescLeft">&#160;</td><td class="mdescRight">人设/模式  <a href="tvs__common__def_8h.html#af3d61c6c0a0109373487de2a670ace99">更多...</a><br /></td></tr>
<tr class="separator:af3d61c6c0a0109373487de2a670ace99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ca517e8dcc62bd68fe3d719e9e99702"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#a9ca517e8dcc62bd68fe3d719e9e99702">tvs_api_audio_provider_error</a> { <a class="el" href="tvs__common__def_8h.html#a9ca517e8dcc62bd68fe3d719e9e99702a70274446cca64af3ebaedca95968b693">TVS_API_AUDIO_PROVIDER_ERROR_NONE</a> = 0, 
<a class="el" href="tvs__common__def_8h.html#a9ca517e8dcc62bd68fe3d719e9e99702a34ff4e3d16e39e106cdf513afcc7465a">TVS_API_AUDIO_PROVIDER_ERROR_OTHERS</a> = -1, 
<a class="el" href="tvs__common__def_8h.html#a9ca517e8dcc62bd68fe3d719e9e99702acb1de9430ab2362c130db97812dd2354">TVS_API_AUDIO_PROVIDER_ERROR_STOP_CAPTURE</a> = -2, 
<a class="el" href="tvs__common__def_8h.html#a9ca517e8dcc62bd68fe3d719e9e99702ab589f35286a4700be5c23c03e4874e6b">TVS_API_AUDIO_PROVIDER_ERROR_TIME_OUT</a> = -3
 }</td></tr>
<tr class="memdesc:a9ca517e8dcc62bd68fe3d719e9e99702"><td class="mdescLeft">&#160;</td><td class="mdescRight">AUDIO_PROVIDER返回码  <a href="tvs__common__def_8h.html#a9ca517e8dcc62bd68fe3d719e9e99702">更多...</a><br /></td></tr>
<tr class="separator:a9ca517e8dcc62bd68fe3d719e9e99702"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b822eabf850ecd41660c581c71720ed"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#a2b822eabf850ecd41660c581c71720ed">tvs_api_recognizer_type</a> { <a class="el" href="tvs__common__def_8h.html#a2b822eabf850ecd41660c581c71720eda7dcf8ec0913517d3ca11d758d9993228">TVS_RECOGNIZER_PRESS_AND_HOLD</a>, 
<a class="el" href="tvs__common__def_8h.html#a2b822eabf850ecd41660c581c71720eda14ef8132726bd340982cb79dabbedc30">TVS_RECOGNIZER_TAP</a>, 
<a class="el" href="tvs__common__def_8h.html#a2b822eabf850ecd41660c581c71720edab336d318fea0dced80c6bc27a97e2fa2">TVS_RECOGNIZER_WAKEWORD</a>, 
<b>TVS_RECOGNIZER_TYPE_MAX</b>
 }</td></tr>
<tr class="memdesc:a2b822eabf850ecd41660c581c71720ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">设备端启动智能语音的方式，包括按下说话/抬起停止模式、单击按钮录音模式以及唤醒词唤醒模式  <a href="tvs__common__def_8h.html#a2b822eabf850ecd41660c581c71720ed">更多...</a><br /></td></tr>
<tr class="separator:a2b822eabf850ecd41660c581c71720ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8c670fb593bd8e340ac8ea1ea84f689"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tvs__common__def_8h.html#af8c670fb593bd8e340ac8ea1ea84f689">tvs_api_control_type</a> { <br />
&#160;&#160;<a class="el" href="tvs__common__def_8h.html#af8c670fb593bd8e340ac8ea1ea84f689a6302a9b64e24905adf5d7fd6ec0d331a">TVS_CONTROL_SPEECH</a> = 100, 
<a class="el" href="tvs__common__def_8h.html#af8c670fb593bd8e340ac8ea1ea84f689a58948d37c7d3cef0c394fed46a946d3e">TVS_CONTROL_PLAY_NEXT</a>, 
<a class="el" href="tvs__common__def_8h.html#af8c670fb593bd8e340ac8ea1ea84f689a1a28e1151a1a207f7052cfb810af6fdc">TVS_CONTROL_PLAY_PREV</a>, 
<a class="el" href="tvs__common__def_8h.html#af8c670fb593bd8e340ac8ea1ea84f689a0ff8f068a4bfb53c3f74ec0794c4373a">TVS_CONTROL_PLAY_FINISH</a>, 
<br />
&#160;&#160;<a class="el" href="tvs__common__def_8h.html#af8c670fb593bd8e340ac8ea1ea84f689a63feb8e1ab863d0179d0e5e64c967e4f">TVS_CONTROL_SEMANTIC</a>
<br />
 }</td></tr>
<tr class="memdesc:af8c670fb593bd8e340ac8ea1ea84f689"><td class="mdescLeft">&#160;</td><td class="mdescRight">设备端当前正在执行的指令类型  <a href="tvs__common__def_8h.html#af8c670fb593bd8e340ac8ea1ea84f689">更多...</a><br /></td></tr>
<tr class="separator:af8c670fb593bd8e340ac8ea1ea84f689"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>TVS SDK结构体和参数、返回值、错误码等定义 </p>
<dl class="section date"><dt>日期</dt><dd>2019-5-10 </dd></dl>
</div><h2 class="groupheader">类型定义说明</h2>
<a id="a0fd8e8fff55c25044094299990c6bc2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0fd8e8fff55c25044094299990c6bc2f">&#9670;&nbsp;</a></span>tvs_api_callback_on_provider_reader_stop</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* tvs_api_callback_on_provider_reader_stop) (int session_id, int error)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>当SDK内部的流式语音上传操作停止时，将回调此接口 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">session_id</td><td>会话ID </td></tr>
    <tr><td class="paramname">error</td><td>停止原因，见tvs_api_audio_provider_error枚举 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>0代表成功，其他值代表失败 </dd></dl>

</div>
</div>
<a id="a90dcf7653d61ef8ba1925005dccf71ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90dcf7653d61ef8ba1925005dccf71ac">&#9670;&nbsp;</a></span>tvs_authorize_callback</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* tvs_authorize_callback) (bool ok, char *auth_info, int auth_info_len, const char *client_id, int error)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>监听authorize的结果，需要持久化此结果，作为下一次authorize的依据 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">ok</td><td>为true代表操作成功，为false代表操作失败。 </td></tr>
    <tr><td class="paramname">auth_info</td><td>authorize结果。 </td></tr>
    <tr><td class="paramname">auth_info_len</td><td>authorize结果的长度。 </td></tr>
    <tr><td class="paramname">error</td><td>失败原因 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>无 </dd></dl>

</div>
</div>
<a id="ad99bb624547e16fe676bba6903cad66a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad99bb624547e16fe676bba6903cad66a">&#9670;&nbsp;</a></span>tvs_callback_on_asr_result</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* tvs_callback_on_asr_result) (const char *asr_text, bool is_end)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>监听后台下发的语音转文本结果 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">asr_text</td><td>语音转文本结果 </td></tr>
    <tr><td class="paramname">is_end</td><td>取值true代表asr_text为语音识别最终结果，false代表asr_text为语音识别的中间结果 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>无 </dd></dl>

</div>
</div>
<a id="aa26b7dd51f7a270e24726cbe9c6100ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa26b7dd51f7a270e24726cbe9c6100ee">&#9670;&nbsp;</a></span>tvs_callback_on_expect_speech</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* tvs_callback_on_expect_speech) ()</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>监听多轮会话事件，用户使用语音触发多轮会话的场景，设备端会收到多轮会话指令。 实现此接口，可以在触发多轮对话的时候得到通知，需要触发一轮新的智能语音对话流程。 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">无</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>无 </dd></dl>

</div>
</div>
<a id="a2f2eb737ecd41665f0691be8a7ad6a37"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f2eb737ecd41665f0691be8a7ad6a37">&#9670;&nbsp;</a></span>tvs_callback_on_mode_changed</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* tvs_callback_on_mode_changed) (<a class="el" href="tvs__common__def_8h.html#af3d61c6c0a0109373487de2a670ace99">tvs_mode</a> src, <a class="el" href="tvs__common__def_8h.html#af3d61c6c0a0109373487de2a670ace99">tvs_mode</a> dst)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>监听模式切换，用户使用语音或者从手机APP端切换模式后，设备端会收到模式切换指令。 实现此接口，可以在模式切换的时候得到通知 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>当前模式。 </td></tr>
    <tr><td class="paramname">dst</td><td>切换的目标模式。 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>无 </dd></dl>

</div>
</div>
<a id="a1743b7eb722cd88695d5893b19cae1cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1743b7eb722cd88695d5893b19cae1cb">&#9670;&nbsp;</a></span>tvs_callback_on_recv_tvs_control</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* tvs_callback_on_recv_tvs_control) (const char *json_payload)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>监听后台下发的自定义技能数据 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">json_payload</td><td>自定义技能数据，为一个Json字符串 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>无 </dd></dl>

</div>
</div>
<a id="adbdb3f6ab77f93418109c0cd40073cd5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbdb3f6ab77f93418109c0cd40073cd5">&#9670;&nbsp;</a></span>tvs_callback_on_state_changed</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* tvs_callback_on_state_changed) (<a class="el" href="tvs__common__def_8h.html#a4910c576d2ee166721a6414854273ff9">tvs_recognize_state</a> last_state, <a class="el" href="tvs__common__def_8h.html#a4910c576d2ee166721a6414854273ff9">tvs_recognize_state</a> new_state, void *state_param)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>监听SDK状态变化 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">last_state</td><td>上一个状态。 </td></tr>
    <tr><td class="paramname">new_state</td><td>下一个状态。 </td></tr>
    <tr><td class="paramname">state_param</td><td>状态变化参数，见tvs_api_state_param的定义，需要进行一次转换： tvs_api_state_param* param = (tvs_api_state_param*)state_param</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>无 </dd></dl>

</div>
</div>
<a id="a7f76bd76ef4fe3420195796922dbe9cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f76bd76ef4fe3420195796922dbe9cc">&#9670;&nbsp;</a></span>tvs_callback_on_terminal_sync</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* tvs_callback_on_terminal_sync) (const char *text, const char *token)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>监听多端互动推送信息，一般是来自手机APP端的自定义消息。 实现此接口，可以接受这些自定义消息的推送，并跟进消息内容进行处理。 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">text</td><td>推送信息，一般是转义后的Json字符串，要与消息推送方约定格式。 </td></tr>
    <tr><td class="paramname">token</td><td>消息的唯一标识。 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>无 </dd></dl>

</div>
</div>
<h2 class="groupheader">枚举类型说明</h2>
<a id="a9ca517e8dcc62bd68fe3d719e9e99702"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ca517e8dcc62bd68fe3d719e9e99702">&#9670;&nbsp;</a></span>tvs_api_audio_provider_error</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="tvs__common__def_8h.html#a9ca517e8dcc62bd68fe3d719e9e99702">tvs_api_audio_provider_error</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>AUDIO_PROVIDER返回码 </p>
<table class="fieldtable">
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="a9ca517e8dcc62bd68fe3d719e9e99702a70274446cca64af3ebaedca95968b693"></a>TVS_API_AUDIO_PROVIDER_ERROR_NONE&#160;</td><td class="fielddoc"><p>正常结束 </p>
</td></tr>
<tr><td class="fieldname"><a id="a9ca517e8dcc62bd68fe3d719e9e99702a34ff4e3d16e39e106cdf513afcc7465a"></a>TVS_API_AUDIO_PROVIDER_ERROR_OTHERS&#160;</td><td class="fielddoc"><p>其他原因，一般可忽略 </p>
</td></tr>
<tr><td class="fieldname"><a id="a9ca517e8dcc62bd68fe3d719e9e99702acb1de9430ab2362c130db97812dd2354"></a>TVS_API_AUDIO_PROVIDER_ERROR_STOP_CAPTURE&#160;</td><td class="fielddoc"><p>收到云端VAD的结束标识 </p>
</td></tr>
<tr><td class="fieldname"><a id="a9ca517e8dcc62bd68fe3d719e9e99702ab589f35286a4700be5c23c03e4874e6b"></a>TVS_API_AUDIO_PROVIDER_ERROR_TIME_OUT&#160;</td><td class="fielddoc"><p>流式语音上传超时，一般是请求超时或者服务器未及时响应 </p>
</td></tr>
</table>

</div>
</div>
<a id="af8c670fb593bd8e340ac8ea1ea84f689"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8c670fb593bd8e340ac8ea1ea84f689">&#9670;&nbsp;</a></span>tvs_api_control_type</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="tvs__common__def_8h.html#af8c670fb593bd8e340ac8ea1ea84f689">tvs_api_control_type</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>设备端当前正在执行的指令类型 </p>
<table class="fieldtable">
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="af8c670fb593bd8e340ac8ea1ea84f689a6302a9b64e24905adf5d7fd6ec0d331a"></a>TVS_CONTROL_SPEECH&#160;</td><td class="fielddoc"><p>语音对话 </p>
</td></tr>
<tr><td class="fieldname"><a id="af8c670fb593bd8e340ac8ea1ea84f689a58948d37c7d3cef0c394fed46a946d3e"></a>TVS_CONTROL_PLAY_NEXT&#160;</td><td class="fielddoc"><p>播控切换，下一首 </p>
</td></tr>
<tr><td class="fieldname"><a id="af8c670fb593bd8e340ac8ea1ea84f689a1a28e1151a1a207f7052cfb810af6fdc"></a>TVS_CONTROL_PLAY_PREV&#160;</td><td class="fielddoc"><p>播控切换，上一首 </p>
</td></tr>
<tr><td class="fieldname"><a id="af8c670fb593bd8e340ac8ea1ea84f689a0ff8f068a4bfb53c3f74ec0794c4373a"></a>TVS_CONTROL_PLAY_FINISH&#160;</td><td class="fielddoc"><p>通知后台，播放完毕 </p>
</td></tr>
<tr><td class="fieldname"><a id="af8c670fb593bd8e340ac8ea1ea84f689a63feb8e1ab863d0179d0e5e64c967e4f"></a>TVS_CONTROL_SEMANTIC&#160;</td><td class="fielddoc"><p>发送明确语义 </p>
</td></tr>
</table>

</div>
</div>
<a id="a7b5f77df252a057ac0a63f6f07f44833"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b5f77df252a057ac0a63f6f07f44833">&#9670;&nbsp;</a></span>tvs_api_env</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="tvs__common__def_8h.html#a7b5f77df252a057ac0a63f6f07f44833">tvs_api_env</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SDK环境 </p>
<table class="fieldtable">
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="a7b5f77df252a057ac0a63f6f07f44833a512585d6d04ffe8a6daa80f6ed70ed9d"></a>TVS_API_ENV_TEST&#160;</td><td class="fielddoc"><p>测试环境 </p>
</td></tr>
<tr><td class="fieldname"><a id="a7b5f77df252a057ac0a63f6f07f44833a2e8aae81e668558ffe21b45be01cd17a"></a>TVS_API_ENV_NORMAL&#160;</td><td class="fielddoc"><p>正式环境 </p>
</td></tr>
<tr><td class="fieldname"><a id="a7b5f77df252a057ac0a63f6f07f44833aad7c9ec87757c7a1d9a9803954db80cd"></a>TVS_API_ENV_EXP&#160;</td><td class="fielddoc"><p>体验环境 </p>
</td></tr>
<tr><td class="fieldname"><a id="a7b5f77df252a057ac0a63f6f07f44833aec0292e6108b685e689939a7ccf51346"></a>TVS_API_ENV_DEV&#160;</td><td class="fielddoc"><p>开发环境 </p>
</td></tr>
</table>

</div>
</div>
<a id="a2b822eabf850ecd41660c581c71720ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b822eabf850ecd41660c581c71720ed">&#9670;&nbsp;</a></span>tvs_api_recognizer_type</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="tvs__common__def_8h.html#a2b822eabf850ecd41660c581c71720ed">tvs_api_recognizer_type</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>设备端启动智能语音的方式，包括按下说话/抬起停止模式、单击按钮录音模式以及唤醒词唤醒模式 </p>
<table class="fieldtable">
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="a2b822eabf850ecd41660c581c71720eda7dcf8ec0913517d3ca11d758d9993228"></a>TVS_RECOGNIZER_PRESS_AND_HOLD&#160;</td><td class="fielddoc"><p>push to talk 模式 </p>
</td></tr>
<tr><td class="fieldname"><a id="a2b822eabf850ecd41660c581c71720eda14ef8132726bd340982cb79dabbedc30"></a>TVS_RECOGNIZER_TAP&#160;</td><td class="fielddoc"><p>点击按钮录音模式 </p>
</td></tr>
<tr><td class="fieldname"><a id="a2b822eabf850ecd41660c581c71720edab336d318fea0dced80c6bc27a97e2fa2"></a>TVS_RECOGNIZER_WAKEWORD&#160;</td><td class="fielddoc"><p>唤醒词模式 </p>
</td></tr>
</table>

</div>
</div>
<a id="af3d61c6c0a0109373487de2a670ace99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3d61c6c0a0109373487de2a670ace99">&#9670;&nbsp;</a></span>tvs_mode</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="tvs__common__def_8h.html#af3d61c6c0a0109373487de2a670ace99">tvs_mode</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>人设/模式 </p>
<table class="fieldtable">
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="af3d61c6c0a0109373487de2a670ace99a810069da3b1e6fdc78ee6d1b6eefd67b"></a>TVS_MODE_NORMAL&#160;</td><td class="fielddoc"><p>普通模式 </p>
</td></tr>
<tr><td class="fieldname"><a id="af3d61c6c0a0109373487de2a670ace99a132794155b9bdc0dd93fc086131bda62"></a>TVS_MODE_BAOLA&#160;</td><td class="fielddoc"><p>宝拉模式 </p>
</td></tr>
<tr><td class="fieldname"><a id="af3d61c6c0a0109373487de2a670ace99aaa3536b84bda0a291b254102ba4d1030"></a>TVS_MODE_CHILD&#160;</td><td class="fielddoc"><p>儿童模式 </p>
</td></tr>
</table>

</div>
</div>
<a id="a4910c576d2ee166721a6414854273ff9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4910c576d2ee166721a6414854273ff9">&#9670;&nbsp;</a></span>tvs_recognize_state</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="tvs__common__def_8h.html#a4910c576d2ee166721a6414854273ff9">tvs_recognize_state</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SDK状态 </p>
<table class="fieldtable">
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="a4910c576d2ee166721a6414854273ff9af3b16c1d04aa3c3eb77f2b90d31fccfb"></a>TVS_STATE_IDLE&#160;</td><td class="fielddoc"><p>空闲状态 </p>
</td></tr>
<tr><td class="fieldname"><a id="a4910c576d2ee166721a6414854273ff9a343a7d50d3b175edfed40587907623b6"></a>TVS_STATE_PREPARING&#160;</td><td class="fielddoc"><p>准备状态 </p>
</td></tr>
<tr><td class="fieldname"><a id="a4910c576d2ee166721a6414854273ff9acf772907befd6d32c52c45cabfb3b498"></a>TVS_STATE_RECOGNIZNG&#160;</td><td class="fielddoc"><p>"语音识别中"状态 </p>
</td></tr>
<tr><td class="fieldname"><a id="a4910c576d2ee166721a6414854273ff9a99197d5435bc834184d4a77bd4483651"></a>TVS_STATE_BUSY&#160;</td><td class="fielddoc"><p>忙状态 </p>
</td></tr>
<tr><td class="fieldname"><a id="a4910c576d2ee166721a6414854273ff9a6323cb6c5c34b551393924b425fba383"></a>TVS_STATE_SPEECH_PLAYING&#160;</td><td class="fielddoc"><p>TTS播报状态 </p>
</td></tr>
</table>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="tvs__common__def_8h.html">tvs_common_def.h</a></li>
    <li class="footer">制作者
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>
